
============================================================================

CLIPSECURE: Simple, secure text encryption
Copyright (c) 2002 Andrew Ferguson
email: argosy1@mail.com
homepage: http://www26.brinkster.com/belzecue/clipsecure.htm

============================================================================

CONTENTS

1. LICENSE AGREEMENT
2. VERSION HISTORY
3. OVERVIEW
4. SECURE EMAIL CONCEPTS
5. INSTALLING CLIPSECURE
6. HOW TO USE CLIPSECURE
   6.1 AUTO SELECT ALL TEXT
   6.2 AUTO COPY SELECTED TEXT
   6.3 AUTO PASTE OVER SELECTED TEXT
   6.4 ENABLE HOTKEYS
   6.5 APPEND SEPARATORS TO CYPHERTEXT
   6.6 SETTING HOTKEYS
7. TROUBLESHOOTING
   7.1 TESTING WITHOUT AUTOMATION
   7.2 USING OTHER CLIPBOARD UTILITES WITH CLIPSECURE
8. CREDITS
9. DCPCRYPT CRYPTOGRAPHIC COMPONENT LIBRARY V2


----------------------------------------------------------------------------
1. LICENSE AGREEMENT

This software is provided to you as freeware.  You may use and distribute
the original unmodified software package in any lawful manner.  Please do
not distribute the ClipSecure executable file on its own.  Copyright in
this work remains with the original author(s) who reserve all rights not
explicitly granted herein. The cryptographic component of the Software is
additionally covered by the MIT license (see 'DCPCrypt Readme.txt' file for
details).  The MIME encoding component is additionally covered by the
Mozilla Public License (http://www.mozilla.org/MPL/).

BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO
THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM
PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
CORRECTION.

IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.


----------------------------------------------------------------------------
2. VERSION HISTORY

1.0.1 (October, 2002)
Initial release.


----------------------------------------------------------------------------
3. OVERVIEW


I wanted to be able to do some simple text encryption for email security.
PGP was definitely overkill for my purposes, however I did want strong,
reliable encryption.  Also, I wanted something clipboard-based, where you
just copy to the clipboard, hit a key to encrypt, then paste back into the
body of an email.  When receiving an encrypted email, the process would be
just as easy: copy all the encrypted text to the clipboard, hit a button to
decrypt, and paste it back over the original text.

A quick internet search turned up no simple utility program that fit the
bill.  A longer search turned up one that came close: ClipCrypt.  This
program had the simplicity I wanted (just click on a tray icon to encrypt
and decrypt), however it was obvious that the encryption algorithm was not
secure.  An email to the author confirmed this: he had used a 'home grown'
algorithm.  I wasn't prepared to settle for anything less that the AES (
Rijndael) standard to ensure complete peace of mind.  So I figured it was
time to write something myself.

The next step was finding a suitable encryption component to use as the
foundation.  It wasn't long before I came across David Barton's DCPCrypt
library for Delphi.  The rest of ClipSecure quickly took shape around it.
The only problem with David's implementation of the component was in the
MIME encoding.  Unfortunately the output was one long string, not the usual
base64 format of 76-character lines.  Since my main purpose for ClipSecure
was easy email encryption, I wanted the output to be neatly formatted.  The
solution was to include a different MIME module to provide the correct
format.

After that, all that remained was adding options and much testing on chunks
of text both small and large.  I didn't bother testing anything larger than
200,000 lines, figuring that was robust enough for email purposes :-)

ClipSecure only handles plain text, but I will look at adding rich text,
HTML text, etc. if there is a demand or if I end up needing it myself.  For
now the program should give you a simple way of corresponding securely with
friends and family.  I hope it is of some use to you.

Regards,
Andrew Ferguson


----------------------------------------------------------------------------
4. SECURE EMAIL CONCEPTS

ClipSecure is intended as a fast, reasonably secure method of exchanging
email with friends, family, and associates. However it is only as secure as
the single password required to both encrypt and decrypt the messages.  If
you require industrial strength encryption with public/private key
facilities then you should use PGP or a similar product.

One of the reasons I wrote ClipSecure was to avoid having to install a
large encryption program just to handle simple email  encryption.  Also, I
wanted to be able to use it from any program that could handle standard
clipboard access.  For those who share my outlook, a single shared password
between the parties will be adequate.

If you are concerned about exchanging a single password with the recipient,
you can achieve a pseudo public/private key setup, and stronger security,
as follows:

   Both the sender and recipient choose individual passwords.

   The parties exchange passwords.  Depending on your level of paranois,
   this should be done at two different times and via different methods to
   lessen the chances of both password exchanges being intercepted.
   Obviously, if you exchange passwords with each other in the same
   communication, and that communication is monitored, then you have lost
   all security.

   Now the parties know each other's password.  When encrypting text, the
   author uses a master password composed of his password first and the
   recipient's password second. When decrypting received ciphertext, the
   recipient knows to use the author's password first combined with his own
   second:

   Bill's password is APPLES. Ben's password is ORANGES.

   When Bill encrypts any text sent to Ben he uses the password
   APPLESORANGES.  If he receives encrypted text from Ben he knows to use
   Ben's password in front of his own: ORANGESAPPLES.

This has the added effect of using a password that is much longer and
therefore more impervious to brute-force attack. And, with this method of
password exchange, you use the same password for encryption to all
recipients:

   Jane's password is LEMONS.

   Bill encrypts a message to Jane using the password APPLESLEMONS.  If Ben
   receives a copy of this encrypted message he cannot decipher it, even
   though he knows Bill's password.

All security relies on one simple trust: that the parties involved rely on
each other to keep passwords private.  In that light, any encryption system,
no matter how simple or complex, remains secure only through the integrity
and diligence of the participants.


----------------------------------------------------------------------------
5. INSTALLING CLIPSECURE

The ClipSecure program is one executable file.  That's it. When it runs
for the first time, a small configuration file (clipsecure. ini) is created
in your operating system folder.  If this file is missing when ClipSecure
runs, it is automatically regenerated with default settings.  Note that no
passwords are stored in the configuration file or anywhere else.

If you want to be able to run ClipSecure from the console or from the START
MENU > RUN command then place CLIPSECURE.EXE in your PATH.  If you don't
know what I mean by PATH then just drop the EXE in your system folder (C:\
WINNT or C:\WINDOWS).  Or just use Windows Explorer to make a shortcut to
wherever you put it.


----------------------------------------------------------------------------
6. HOW TO USE CLIPSECURE

ClipSecure allows you to automatically encrypt and decrypt text in any
object (i.e. any edit window or box) that implements the standard Windows
keyboard shortcuts of CTRL+A ('select all'), CTRL+C ('copy to clipboard'),
and CTRL+V ('paste from clipboard').  One of the few applications that does
not implement CTRL+A is, surprisingly, the common Windows Notepad of
Windows 95, 98, and NT4.  Microsoft finally got around to correcting this
oversight in Windows XP.

Some other text editors remap these standard key combinations for their own
macro functions.  If you are running ClipSecure with full automation and
text is not being transferred correctly between your application and the
Windows clipboard, check to see if these required key combos are working as
expected.  If not then you will need to turn off some or all of ClipSecure'
s automation features when working with that application, and instead do
manual selecting, copying, and pasting during the encryption process.

I find that hotkeys are a lot quicker than reaching for the  mouse, but
perhaps you prefer pointing and clicking. ClipSecure's functions are always
available by rightclicking on the tray icon -- it's the white box on your
taskbar titled 'AES Clip'.

The password popup dialog has one extra option: 'retain password'.  This
will save the current password in memory and use it as the default for all
encryption/decryption activity.  This password is not written to file and
lasts until you shutdown the program or select the 'clear password' option
from the ClipSecure popup menu (rightclick on tasktray icon).


----------------------------------------------------------------------------
6.1 AUTO SELECT ALL TEXT

This sends a CTRL+A to the source window to select all text for an
encryption or decryption operation.  When dealing with large amounts of text,
there may be a short delay while the source window 'selects' all the text.
You should wait until you see that selection is complete before entering a
password and continuing with encryption/decryption.  If the password dialog
pops up but you can see that no text was selected in the original window,
check to see if you have the 'append separators' option active.  That
option de-activates the 'auto select all' option.  See section 6.5 for more.


----------------------------------------------------------------------------
6.2 AUTO COPY SELECTED TEXT

Auto copy mode sends a CTRL+C key combo to the source window, resulting in
whatever selected text there being copied into the Windows clipboard.


----------------------------------------------------------------------------
6.3 AUTO PASTE OVER SELECTED TEXT

Allows automatic switching back to the source window and sending of a
CTRL+V key combo to paste the contents of the clipboard following an
encryption operation.  The pasted text will overwrite any selected text in
the source window. For example, if you have 'auto select all text' active
then all text in the source window will be automatically selected prior to
pasting from the clipboard.


----------------------------------------------------------------------------
6.4 ENABLE HOTKEYS

Self explanatory.  If this option is off then you can operate ClipSecure
via the trayicon popup menu only.


----------------------------------------------------------------------------
6.5 APPEND SEPARATORS TO CYPHERTEXT

This option is handy when you wish to encrypt/decrypt part of the text, not
all of it.  The separator lines makes it easy to see where the ClipSecure
block begins and ends. When the 'append separators' option is active, the '
auto select all text' option is ignored -- it is assumed that in this mode
all text selection will be done manually. Encrypting is a simple matter of
selecting the lines to be encrypted.  Here is an example email:

-- begin sample --

TO: bob@somewhere.com
FROM: me@otherplace.com
SUBJECT: demo of 'append separators'

Hi there, Bob.  With regard to that matter we discussed, I have some new
information that you will be interested in.

Why would the aliens in the movie Signs want to take over Earth when our
planet is covered in water, an element that is deadly to them?  It has been
suggested that the aliens might not have known about their susceptibility
to water. Perhaps this is something they discovered only *after* they
arrived. This theory helps to explain why the aliens were repelled so
easily, and the speed of their departure.

So let me know if you agree with this or not.

Regards,
Me

-- end sample --

After selecting the middle paragraph for encryption and
hitting the ClipSecure encrypt hotkey, the email now looks
like this and is ready to send:

-- begin sample --

TO: bob@somewhere.com
FROM: me@otherplace.com
SUBJECT: demo of 'append separators'

Hi there, Bob.  With regard to that matter we discussed, I have some new
information that you will be interested in.

[-START-CLIPSECURE-START-]
n2o5rrwondnlc2Nn9xSpwGCmxjn1bnY/v2bHqLfNpbnZd0+PLAZDnPhs7mkW/sxTJS9inNg9X2Zc
fXR2KrWYA8W2Tjided5No6A1E3CSfiNTRLlYENVgKA7a2uWzHaupO0YErGoBcpK7LeIWR8NOPrj0
mTR4+2pnVLhekkoo9qwJt5klaJh/v0Nc1EXi9Uyl7Wd4cw4qt8YS3quF2sUqil+RIR+0orhVvvgj
qEgQzG23+/pPwPD/QUsJPY29avvA/ARQV+juROmIvkbZlg3HseK5G7sks7YrMLPTAeW526BFOX4Z
oZhrEze3P2FtYY5VFhQLQNNBd1r+mTeenKj90QtVSXM2ZlV5ef5ZA7bOGHvftGwYM+4I0U0AEozO
uJnwwWncuLAC+StG9Ce0SQ2eeXmVAyXRE/CQ2l5QTXyDwqSJUV+V+BMUWWIYj73471tja6+h6UBE
a1XwElZDzdZOzimmJr2aoNT6wltUAx+2YUppdk/NCdzJOtDXFdFFsWTPrV3MjHep0OZGIoyJXaiD
U4ZKPInT5xvU3XO4
[-END-CLIPSECURE-END-]

So let me know if you agree with this or not.

Regards,
Me

-- end sample --

The ClipSecure ciphertext block is automatically formatted to 76 characters
per line, according to standard MIME specification.  If the right margin of
the block appears ragged it is because either a) your viewer is not using a
fixed-width font or b) your viewing window is not wide enough to show 76
columns and the text is wrapping. Line wrapping makes no difference to
decrypting the block, provided the recipient selects all lines between the
ClipSecure markers.  Once selected, the recipient simply hits their
decryption hotkey.  The selected ciphertext is overwritten by the decrypted
text:

-- begin sample --

TO: bob@somewhere.com
FROM: me@otherplace.com
SUBJECT: demo of 'append separators'

Hi there, Bob.  With regard to that matter we discussed, I have some new
information that you will be interested in.

[-START-CLIPSECURE-START-]
Why would the aliens in the movie Signs want to take over Earth when our
planet is covered in water, an element that is deadly to them?  It has been
suggested that the aliens might not have known about their susceptibility
to water. Perhaps this is something they discovered only *after* they
arrived. This theory helps to explain why the aliens were repelled so
easily, and the speed of their departure.
[-END-CLIPSECURE-END-]

So let me know if you agree with this or not.

Regards,
Me

-- end sample --

The ClipSecure bookends must be manually removed if desired. Of course, we
could have encrypted the entire email (with or without separators) instead
of just that one block, which would have turned the original email into:

-- begin sample --

TO: bob@somewhere.com
FROM: me@otherplace.com
SUBJECT: demo of 'append separators'

[-START-CLIPSECURE-START-]
gP7oOZBDYp5AZNAwPiXPZpyCIpwNwPpL734fJd6gmkJSDR+IZQmNTBx3jTFi1TSp1xyrz7j0DqVB
R/rvDthpkp9eO1BsQFI9tUosmmXqpP2TBW7+nw4LcUkGS7GNw/pIAeugwNZZn4QHyIxU+1dKGcRi
tKGVU7SE+D8B/ZiQ99GTLkakVj3hZ1/EhQdE40RjkRfJgkxRq2KgHIQLfgzxH0Jrase+IuNl9F7Q
jiPs8LUBNOTPWpaNR2TQXXJyDBk4n8z45eqoy2Yz5KCZn6DbHE0pHfcJ984R+yoBAYRShxe8zsHi
QZcJjEbsqAJ1o6KTrJ9OkSn0UmjTxKnngAMBTXnQ7SqWYAnIIXH5sNl8tLVvbxvDsT1rWCUjr9Ao
+tsaf9A2J3KZT9gI/BbyvIgzHTKT9mytPjpUEz671iy0e09LJHM74DRAsGLawIxbVU03uPyWRLtl
xDU9yG48Y0W3A4Wbp5I5CK7AAO4bIZJkeHn4cLFPclKVFiZTOIAwnO4JTVT3GFoTRbXx9cf87sxF
5P+BDNb2GKOLYaFcGZkQj2xUKIkUV0IcjOOGoiv3mxNWn83Re4QilPcryeab0R1H/E+kixEWk29l
gioT4ZUydpve4yP+SSwURbItqURBCt55gdaMutrGhBcsxPu35VgaMcseqprUJZY6F70hHxHnhfM+
P4r0rDv+0KQhTaHU5nGlRstAVBKsk+RgunXRsB8dbAPyllv7luR8RqR2+4ggwGaVMQv0biqRUfcW
kYEYEcPoICUAebrwS2+m9wRNuYs++V2IVde+
[-END-CLIPSECURE-END-]

-- end sample --

There is little reason to use 'append separators' when encrypting entire
emails.  It is easier for the recipient to use full automation (e.g. 'auto
select all text' option), simplifying encryption and decryption to a matter
of placing the cursor inside a text box (e.g. the body of the received
email), hitting the ClipSecure hotkey, and entering a password -- unless you
have retained a password, in which case even this step is automated.
Speaking of passwords, you can test your copy of ClipSecure by decrypting
the above blocks of ciphertext... the password used was 'test' (omit quotes).


----------------------------------------------------------------------------
6.6 SETTING HOTKEYS

To change ClipSecure's encrypt/decrypt hotkeys, select 'hotkeys' in the
options dialog.  Simply enter the new hotkey combo description in a similar
format to the defaults.  To include special keys use: CTRL, ALT, SHIFT, and
combine them with the plus character, e.g. CTRL+ALT+F9 (special keys plus
'F9' key), SHIFT+ALT+S (special keys plus 'S' key).


----------------------------------------------------------------------------
7. TROUBLESHOOTING

So far I've tested ClipSecure under Windows 98, NT4, and XP. No significant
problems were found on any of those.  I can't guarantee that ClipSecure
will work flawlessly on your PC, but I have done all I could think of to
minimize any errant behaviour if something does go wrong.

ClipSecure monitors the active foreground window via API so that it knows
the identity of the source window providing the text.  Before pasting from
the clipboard, the program checks to make sure the original window still
exists.  If not, then the operation aborts, otherwise ClipSecure re-
activates the original window ready to receive the clipboard contents.
Active window monitoring is done via a program timer (250 ms by default). I
hope to do away with the timer and switch to an API event hook just as soon
as I find out how.  Suggestions and instructions most welcome.

Not that it was intended for huge chunks, but I did test ClipSecure with up
to 200,000 lines of text with no difficulty.  If you do plan on encrypting
large amounts of text then consider emailing it as a password-protected ZIP
file instead.  Another issue with processing large chunks of text is any
active 'undo' feature in the source application.  If this is the case then
every cut/paste operation will cause the source application to consume huge
amounts of memory while keeping track of the text changes, and you are
likely to run into problems due to the drain on system resources.


----------------------------------------------------------------------------
7.1 TESTING WITHOUT AUTOMATION

If you encounter a problem or unexpected behaviour, immediately switch off
all automation features in the options dialog.  Then repeat the procedure
that caused the error, this time performing manual key entry of select
(CTRL+A), copy (CTRL+C), encrypt/decrypt (hotkeys or tasktray icon menu),
and paste ( CTRL+V in source window).  If ClipSecure performs as expected
then try switching each option back on one at a time, retesting operation
with each change.  With this method you will be able to pinpoint where the
problem arises.  Next, try increasing the settings for 'sendkeys delay'.
This will slow down the automation features in case your system is
performing the automation too quickly.


----------------------------------------------------------------------------
7.2 USING OTHER CLIPBOARD UTILITIES WITH CLIPSECURE

I found some problems when running Yankee Clipper alongside ClipSecure,
however this was likely due to something similar to the 'undo' problem
mentioned above.  Clipboard utilities like Yankee Clipper store many copies
of the clipboard contents, and this too can be drain on system resources
when manipulating big chunks of text.

Try running ClipSecure without any active clipboard-based programs to see if
that solves any problems.


----------------------------------------------------------------------------
8. CREDITS

Thank you to the following providers of excellent free Delphi components:

DCPcrypt Cryptographic Component Library v2 Beta 2
by David Barton
http://www.cityinthesky.co.uk/
crypto@cityinthesky.co.uk

DIMimeStreams.pas
by Ralf Junker
delphi@zeitungsjunge.de

RX Library
http://www.rxlib.com
Authors:
Fedor Kozhevnikov  (fkozh@iname.com)
Igor Pavluk        (igorp@mail.com)
Serge Korolev      (korolev@usa.net)


----------------------------------------------------------------------------
9. DCPCRYPT CRYPTOGRAPHIC COMPONENT LIBRARY V2

     =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
     =   DCPcrypt Cryptographic Component Library v2 Beta 2    =
     =          Copyright (c) 1999-2002 David Barton           =
     =             http://www.cityinthesky.co.uk/              =
     =               crypto@cityinthesky.co.uk                 =
     =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=    

Introduction:

DCPcrypt is a collection of cryptographic components for the Borland
Delphi(tm), C++ Builder(tm) and Kylix(tm) programming languages. The 
supported versions are Delphi 4, 5 and 6, C++ Builder (3?), 4, 5, 6
and Kylix 1 (untested) and 2.

The idea behind DCPcrypt is that it should be possible to "drop in"
any algorithm implementation to replace another with minimum or no
code changes. To aid in this goal all cryptographic components are
descended from one of several base classes, TDCP_cipher for encryption
algorithms and TDCP_hash for message digest algorithms.

DCPcrypt is open source software (released under the MIT license) and
as such there is no charge for inclusion in other software. However, I
am currently a student and if you are making money from my software I
would really appreciate a donation of some sort, whether financial or
a license for the software you develop (or if anyone wants to sponsor 
a Mathematical Modelling (Masters) student for their final year...). 
Please note THIS IS NOT COMPULSORY IN ANY WAY. See 
http://www.cityinthesky.co.uk/cryptography.html for details on 
financial donations.

This software is OSI Certified Open Source Software.
OSI Certified is a certification mark of the Open Source Initiative.

If you maintain a website then a link to my page at 
http://www.cityinthesky.co.uk/ would be great!

What's New:

Changes since DCPcrypt v2 Beta 1 include

  *  Renamed source code files for hashes and ciphers to DCPxxx.pas
  
  *  Change the format of Cipher.InitStr so that the hash algorithm
     used to generate the key is explicitly specified. In order to
     get the same functionality as before, use TDCP_sha1.
     e.g. Cipher.InitStr('Hello World',TDCP_sha1);

  *  Block ciphers are now inherited from an intermediate component
     that implements the block size specific chaining mode encryption
     routines.

  *  Remove the internal component registration, it was more hassle
     than it was worth. If there is a demand for this to be put back
     then I might...     

  *  Added the full range of operation modes for Haval. By changing
     the defines at the top of DCPhaval.pas you can specify the
     number of passes and the output hash size.
     
  *  Added the Tiger hash algorithm (192bit digest).
  
  *  Changed the name of the file containing TDCP_ripemd160 for 
     consistency to DCPripemd160 from DCPrmd160.
     
  *  GOST no longer appears on the component palette pending verifying
     what the actual standard is (the code is still included however).

  *  Added the RipeMD-128 hash algorithm (128bit digest).
  
  *  Added the Serpent block cipher (AES finalist).
  
  *  Added the SHA-256,384,512 hash algorithms (256, 384, 512bit digest
     respectively).

  *  Added CTR chaining mode to all block ciphers.

Installation:

Delphi:      Open the appropriate package, DCPdelphiX.dpk where X is 
             your version of Delphi (either 4, 5 or 6). Then press the
             install button.

C++ Builder: Create a new design time package and add all the .pas
             files from the DCPcrypt2.zip archive including all those
             in the Ciphers and Hashes subdirectories. Then press the
             install button.

Kylix:       Open the DCPkylix.dpk package and then press the install
             button (note: Kylix 1 users may need to create a new
             package as with C++ Builder as this is a Kylix 2 package).

You may need to add the directory containing DCPcrypt (and the Ciphers
and Hashes subdirectories) to your library search path (found under 
Environment Options).

Once installed you will find two extra pages of components on your 
component palette, namely DCPciphers and DCPhashes. You can now place 
these components onto the form of your application to start using the 
algorithms.

Usage:

See the main html documentation in the Docs subdirectory.

Contact:

I appreciate knowing what DCPcrypt is being used for and also if you 
have any queries or bug reports please email me at crypto@cityinthesky.co.uk. 

DCPcrypt is copyrighted (c) 1999-2002 David Barton.
All trademarks are property of their respective owners.

The MIT License

Copyright (c) 2002 David Barton

Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

